<?xml version="1.0"?>
<doc>
    <assembly>
        <name>Source</name>
    </assembly>
    <members>
        <member name="T:DomainContext`2">
            <summary>
            Base class for domain contexts. 
            </summary>
            <typeparam name="TContextInterface">The type of the context interface, used to determine and 
            validate the aggregate roots exposed by the context.</typeparam>
            <typeparam name="TId">The type of identifiers used by this context aggregate roots 
            (it is be the same for all aggregate roots). Must be a value type or a string.</typeparam>
            <remarks>
            <para>
            This context is smart enough to automatically process insert or updates of entire 
            object graphs from aggregate roots. The deeper the graphs and the relationships, 
            the more expensive save operations are, but the behavior is consistent and transparent 
            to the user, and makes modeling domain behavior much easier than dealing with explicit 
            updates of collections and references.
            </para>
            <para>
            The <typeparamref name="TContextInterface"/> is used to determine what type are 
            the aggregate roots for the context. All public <see cref="T:System.Linq.IQueryable`1"/> properties 
            of this interface are considered aggregate roots. All such properties whose <c>T</c> 
            type parameter does not implement the <see cref="T:IAggregateRoot`1"/> interface compatible 
            with the context <typeparamref name="TId"/> parameter cause an exception that is logged 
            at static initialization time.
            </para>
            <para>
            All entity types tracked by this context must implement <see cref="T:IIdentifiable`1"/>, unless 
            they are complex types. This ensures proper updating/deleting behavior for object graphs.
            </para>
            <para>
            A domain context is configured by default with the following properties:
            <code>
            this.Configuration.AutoDetectChangesEnabled = true;
            this.Configuration.LazyLoadingEnabled = true;
            this.Configuration.ProxyCreationEnabled = true;
            this.Configuration.ValidateOnSaveEnabled = true;
            </code>
            This can be changed in a derived class constructor.
            </para>
            </remarks>
            <nuget id="netfx-Patterns.DomainContext.EF"/>
        </member>
        <member name="T:IDomainContext`1">
            <summary>
            Provides access to the domain aggregate roots.
            </summary>
            <nuget id="netfx-Patterns.DomainContext" />
        </member>
        <member name="M:IDomainContext`1.Commit">
            <summary>
            Saves all changes made in this context to the underlying database.
            </summary>
        </member>
        <member name="M:IDomainContext`1.Find``1(`0)">
            <summary>
            Finds the aggregate root with the specified id.
            </summary>
            <returns>The found aggregate or <see langword="null"/>.</returns>
        </member>
        <member name="M:IDomainContext`1.Persist``1(``0)">
            <summary>
            Inserts or updates the specified aggregate root.
            </summary>
        </member>
        <member name="M:IDomainContext`1.New``1(System.Action{``0})">
            <summary>
            Creates a new instance of an aggregate root.
            </summary>
            <remarks>
            Although not strictly required, using this method for creating new 
            aggregate roots allows the context to perform additional initialization 
            if needed, such as injecting the <see cref="T:IDomainContext`1"/> into an 
            entity that implements <see cref="T:IDomainContextAccessor`1"/>, tracking 
            the entity changes, create a proxy for it, etc.
            </remarks>
            <typeparam name="T">Type of aggregate root to instantiate.</typeparam>
        </member>
        <member name="M:IDomainContext`1.Delete``1(`0)">
            <summary>
            Logically deletes the specified aggregate root.
            </summary>
        </member>
        <member name="M:IDomainContext`1.Delete``1(``0)">
            <summary>
            Logically deletes the aggregate root with the specified identifier.
            </summary>
        </member>
        <member name="F:DomainContext`2.validatedTypes">
            <summary>
            Entity types that have been already been validated for IIdentifiable recursively.
            </summary>
        </member>
        <member name="M:DomainContext`2.#cctor">
            <summary>
            Validates the domain context, so that runtime behavior can be 
            guaranteed to succeed.
            </summary>
        </member>
        <member name="M:DomainContext`2.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:DomainContext`2"/> class 
            with the default connection name.
            </summary>
        </member>
        <member name="M:DomainContext`2.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:DomainContext`2"/> class 
            with the given connection string or name.
            </summary>
        </member>
        <member name="M:DomainContext`2.Commit">
            <summary>
            Commits changes to all entities that were persisted in this context so far.
            </summary>
        </member>
        <member name="M:DomainContext`2.SaveChanges">
            <summary>
            Saves all changes made in this context to the underlying database.
            </summary>
            <returns>
            The number of objects written to the underlying database.
            </returns>
            <exception cref="T:System.InvalidOperationException">Thrown if the context has been disposed.</exception>
            <exception cref="T:System.Data.Entity.Validation.DbEntityValidationException">Thrown if validation fails for any of the entities 
            with pending changes in the context.</exception>
        </member>
        <member name="M:DomainContext`2.New``1(System.Action{``0})">
            <summary>
            Creates a new instance of an aggregate root.
            </summary>
            <typeparam name="T">Type of aggregate root to instantiate.</typeparam>
        </member>
        <member name="M:DomainContext`2.Find``1(`1)">
            <summary>
            Finds the aggregate root with the specified id.
            </summary>
        </member>
        <member name="M:DomainContext`2.Persist``1(``0)">
            <summary>
            Inserts or updates the specified aggregate root.
            </summary>
        </member>
        <member name="M:DomainContext`2.Delete``1(``0)">
            <summary>
            Logically deletes the specified aggregate root.
            </summary>
        </member>
        <member name="M:DomainContext`2.Delete``1(`1)">
            <summary>
            Logically deletes the aggregate root with the specified identifier.
            </summary>
        </member>
        <member name="M:DomainContext`2.OnContextCreated">
            <summary>
            Called when the context is created.
            </summary>
        </member>
        <member name="M:DomainContext`2.OnEntityCreated(System.Object)">
            <summary>
            Called when an entity has been created either by calling 
            <see cref="M:DomainContext`2.New``1(System.Action{``0})"/> or by loading it from the underlying 
            storage.
            </summary>
        </member>
        <member name="M:DomainContext`2.OnContextSavedChanges">
            <summary>
            Called when pending changes have been saved.
            </summary>
        </member>
        <member name="M:DomainContext`2.OnContextSavingChanges">
            <summary>
            Called before saving changes in the context.
            </summary>
        </member>
        <member name="M:DomainContext`2.OnEntitySaving``1(``0)">
            <summary>
            Called before saving an entity in the context. This occurs 
            before the context changes have been saved and persisted 
            to the underlying storage.
            </summary>
        </member>
        <member name="M:DomainContext`2.OnEntitySaved``1(``0)">
            <summary>
            Called after saving an entity in the context. This occurs 
            before the context changes have been saved and persisted 
            to the underlying storage.
            </summary>
        </member>
        <member name="M:DomainContext`2.Initialize">
            <summary>
            Initializes default settings for the context.
            </summary>
        </member>
        <member name="M:DomainContext`2.OnObjectMaterialized(System.Object,System.Data.Objects.ObjectMaterializedEventArgs)">
            <summary>
            Hook into the underlying EF materialization so that we can provide our own 
            extensibility hook for partial classes (i.e. DomainEvents).
            </summary>
        </member>
        <member name="M:DomainContext`2.InitializeDomainContextAccessor(System.Object)">
            <summary>
            Sets the entity DomainContext property if the <see cref="T:IDomainContextAccessor`1"/> 
            interface is implemented by it.
            </summary>
        </member>
        <member name="M:DomainContext`2.ValidateEntity(System.Data.Entity.Infrastructure.DbEntityEntry,System.Collections.Generic.IDictionary{System.Object,System.Object})">
            <summary>
            Validates the entity.
            </summary>
        </member>
        <member name="M:DomainContext`2.ValidateIdentifiableEntity``1(System.Data.Entity.Infrastructure.DbEntityEntry{``0},System.Data.Entity.Validation.DbEntityValidationResult)">
            <summary>
            Validates that all properties that are references are identifiable.
            </summary>
        </member>
        <member name="M:DomainContext`2.SaveOrUpdate``1(``0,System.Collections.Concurrent.ConcurrentDictionary{System.Type,System.Collections.Generic.HashSet{System.Object}})">
            <summary>
            Processes the entire entity graph by comparing it with the persisted state, 
            including all references so that collections and references can be automatically 
            updated.
            </summary>
        </member>
        <member name="M:DomainContext`2.UpdateReferences``1(``0,``0,System.Collections.Concurrent.ConcurrentDictionary{System.Type,System.Collections.Generic.HashSet{System.Object}})">
            <summary>
            Updates the collections and references reached by the entity, by comparing them 
            with the persisted state.
            </summary>
        </member>
        <member name="M:DomainContext`2.BuildEquals``1(System.Object,System.Type)">
            <summary>
            This is needed because apparently EF can't build this expression properly.
            </summary>
        </member>
        <member name="M:DomainContext`2.QueryIncludingAllReferencesAsNoTracking``1(``0)">
            <summary>
            Includes all direct references as no tracking for the purpose of comparing 
            with the saved state.
            </summary>
        </member>
        <member name="M:DomainContext`2.DeleteRelationship``1(``0,System.Reflection.PropertyInfo,System.Type,System.Object)">
            <summary>
            Deletes a relationship to an aggregate root.
            </summary>
        </member>
        <member name="M:DomainContext`2.DeleteStoredEntity(System.Type,System.Object,System.Object)">
            <summary>
            Deletes an entity.
            </summary>
        </member>
        <member name="M:DomainContext`2.IsAggregateRoot(System.Type)">
            <summary>
            Determines whether the given type is an aggregate root..
            </summary>
        </member>
        <member name="M:DomainContext`2.IsDbSet(System.Type)">
            <summary>
            Determines whether the given type is a DbSet.
            </summary>
        </member>
        <member name="M:DomainContext`2.IsQueryable(System.Type)">
            <summary>
            Determines whether the given type is an <see cref="T:System.Linq.IQueryable"/>.
            </summary>
        </member>
        <member name="M:DomainContext`2.GetIdType(System.Type)">
            <summary>
            Gets the type of identifier from the <see cref="T:IIdentifiable`1"/> 
            interface implemented by the given type.
            </summary>
        </member>
        <member name="M:DomainContext`2.ThrowIfNotIdentifiable(System.Type)">
            <summary>
            Throws if the given entity type does not implement <see cref="T:IIdentifiable`1"/>.
            </summary>
        </member>
        <member name="M:DomainContext`2.Invoke(System.Action)">
            <summary>
            Invokes the specified action and rethrows the inner exception if a
            reflection target invocation exception happens.
            </summary>
        </member>
        <member name="P:DomainContext`2.ObjectContext">
            <summary>
            Gets the object context.
            </summary>
        </member>
        <member name="T:DomainContext`2.DbFormattedValidationException">
            <summary>
            Provides human-readable validation errors.
            </summary>
        </member>
        <member name="T:DomainContext`2.DbIncluder">
            <summary>
            Implements the Include extension interface for EF.
            </summary>
        </member>
        <member name="T:QueryableExtensions.IIncluder">
            <summary>
            Provides the <c>Include</c> extension method for queryables. Does 
            nothing by default.
            </summary>
        </member>
        <member name="T:QueryableExtensions">
            <summary>
            Allows consumers of <see cref="T:IDomainContext`1"/> queryable 
            aggregate roots to include/prefetch certain properties or 
            property paths. This class allows testing of such extension 
            method by exposing a replaceable <see cref="T:QueryableExtensions.IIncluder"/> 
            interface that concrete domain context implementations 
            replace on their constructors.
            </summary>
        </member>
        <member name="M:QueryableExtensions.Include``2(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,``1}})">
            <summary>
            Specifies that the given property should be included/prefetched for a queryable from an <see cref="T:IDomainContext`1"/>.
            </summary>
            <typeparam name="T">Type of queryable entity, inferred by the compiler from the <paramref name="source"/> argument.</typeparam>
            <typeparam name="TProperty">The type of the property, inferred by the compiler from the <paramref name="path"/> expression.</typeparam>
            <param name="source">The queryable source to include/prefetch properties from.</param>
            <param name="path">The property path expression.</param>
        </member>
        <member name="M:QueryableExtensions.Include``1(System.Linq.IQueryable{``0},System.String)">
            <summary>
            Specifies that the given property should be included/prefetched for a queryable from an <see cref="T:IDomainContext`1"/>.
            </summary>
            <typeparam name="T">Type of queryable entity, inferred by the compiler from the <paramref name="source"/> argument.</typeparam>
            <param name="source">The queryable source to include/prefetch properties from.</param>
            <param name="path">The property path expression.</param>
        </member>
        <member name="T:QueryableExtensions.IIncluder">
            <summary>
            Provides the <c>Include</c> extension method for queryables. Does 
            nothing by default.
            </summary>
        </member>
        <member name="M:QueryableExtensions.IIncluder.Include``2(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,``1}})">
            <summary>
            Specifies that the given property should be included/prefetched.
            </summary>
            <typeparam name="T">Type of queryable entity, inferred by the compiler from the <paramref name="source"/> argument.</typeparam>
            <typeparam name="TProperty">The type of the property, inferred by the compiler from the <paramref name="path"/> expression.</typeparam>
            <param name="source">The queryable source to include/prefetch properties from.</param>
            <param name="path">The property path expression.</param>
        </member>
        <member name="M:QueryableExtensions.IIncluder.Include``1(System.Linq.IQueryable{``0},System.String)">
            <summary>
            Specifies that the given property should be included/prefetched.
            </summary>
            <typeparam name="T">Type of queryable entity, inferred by the compiler from the <paramref name="source"/> argument.</typeparam>
            <param name="source">The queryable source to include/prefetch properties from.</param>
            <param name="path">The property path expression.</param>
        </member>
        <member name="T:DomainContext`2.TypeSystem">
            <summary>
            This is basically what everyone else (OData, MSDN samples, etc.) 
            use for determining the element type given a sequence type (i.e. IEnumerable{T}).
            </summary>
        </member>
        <member name="T:IAggregateRoot`1">
            <summary>
            Base interface that must be implemented by all aggregate root entities. 
            </summary>
            <remarks>
            This interface simply provides the <see cref="P:IAggregateRoot`1.IsDeleted"/> on top of 
            what <see cref="T:IIdentifiable`1"/> provides, enforcing the rule that that 
            aggregate are never deleted using the domain model, they are 
            simply marked as deleted.
            <para>
            Accessing the underlying context implementation though, aggregate 
            roots can be deleted anyway as usual in EF/NH (i.e. in migration scenarios, 
            tests, etc., it might be needed).
            </para>
            </remarks>
            <nuget id="netfx-Patterns.DomainContext"/>
        </member>
        <member name="T:IIdentifiable`1">
            <summary>
            Base interface that must be implented by all domain entities. 
            Types that do not have their separate table (a.k.a. "complex types" 
            in EF or "components" in NH) just don't implement this interface.
            </summary>
            <nuget id="netfx-Patterns.DomainContext" />
        </member>
        <member name="P:IIdentifiable`1.Id">
            <summary>
            Gets or sets the id.
            </summary>
        </member>
        <member name="P:IAggregateRoot`1.IsDeleted">
            <summary>
            Gets or sets a value indicating whether the entity is deleted. 
            Aggregate root entities are never deleted using the domain model, they are 
            simply marked as deleted.
            </summary>
        </member>
        <member name="T:IDomainContextAccessor`1">
            <summary>
            Interface implemented by entities that need to 
            access the owning domain context to implement 
            their business logic.
            </summary>
            <remarks>
            Some aggregate roots may need to create, find or save 
            other aggregate roots in the context, and in order to do 
            it, they can implement this interface. Domain 
            context implementations should check for this interface 
            when the entities are being materialized or 
            constructed via <see cref="M:IDomainContext`1.New``1(System.Action{``0})"/> 
            or <see cref="M:IDomainContext`1.Find``1(`0)"/> 
            to set the property value.
            </remarks>
            <nuget id="netfx-Patterns.DomainContext"/>
        </member>
        <member name="P:IDomainContextAccessor`1.Context">
            <summary>
            Gets or sets the owning domain context.
            </summary>
        </member>
        <member name="T:AppDomainData">
            <summary>
            Provides strong-typed access to AppDomain storage data.
            </summary>
            <nuget id="netfx-System.AppDomainData" />
        </member>
        <member name="M:AppDomainData.SetData``1(``0)">
            <summary>
            Sets the given data in the <see cref="T:System.AppDomain"/> storage. The returned 
            <see cref="T:System.IDisposable"/> can be used to remove the state 
            when disposed.
            </summary>
        </member>
        <member name="M:AppDomainData.GetData``1">
            <summary>
            Gets the data from the <see cref="T:System.AppDomain"/> storage.
            </summary>
        </member>
        <member name="M:AppDomainData.SetData``1(System.AppDomain,``0)">
            <summary>
            Sets the given data in the <see cref="T:System.AppDomain"/> storage. The returned 
            <see cref="T:System.IDisposable"/> can be used to remove the state 
            when disposed.
            </summary>
            <param name="domain" this="true">The domain to set the data on.</param>
            <param name="data">The data to save.</param>
        </member>
        <member name="M:AppDomainData.GetData``1(System.AppDomain)">
            <summary>
            Gets the data from the <see cref="T:System.AppDomain"/> storage.
            </summary>
            <param name="domain" this="true">The domain to get the data.</param>
        </member>
        <member name="T:DictionaryGetOrAdd">
            <summary>
            Adds a key/value pair to the <see cref="T:System.Collections.Generic.IDictionary`2"/> if the key does not already exist. 
            </summary>
        </member>
        <member name="M:DictionaryGetOrAdd.GetOrAdd``2(System.Collections.Generic.IDictionary{``0,``1},``0,System.Func{``0,``1})">
            <summary>
            Adds a key/value pair to the <see cref="T:System.Collections.Generic.IDictionary`2"/> if the key does not already exist. 
            No locking occurs, so the value may be calculated twice on concurrent scenarios. If you need 
            concurrency assurances, use a concurrent dictionary instead.
            </summary>
            <nuget id="netfx-System.Collections.Generic.DictionaryGetOrAdd"/>
            <param name="dictionary" this="true">The dictionary where the key/value pair will be added</param>
            <param name="key">The key to be added to the dictionary</param>
            <param name="valueFactory">The value factory</param>
        </member>
        <member name="T:System.Diagnostics.Events.DataTraceEvent">
            <summary>
            A tracing event that consists of data, instead of a message string.
            </summary>
        </member>
        <member name="T:System.Diagnostics.TraceEvent">
            <summary>
            Represents a tracing event originated in a trace source.
            </summary>
        </member>
        <member name="M:System.Diagnostics.TraceEvent.#ctor(System.Diagnostics.TraceEventType,System.Int32)">
            <summary>
            Initializes a new instance of the <see cref="T:System.Diagnostics.TraceEvent"/> class.
            </summary>
        </member>
        <member name="P:System.Diagnostics.TraceEvent.Id">
            <summary>
            Gets the identifier for the tracing event.
            </summary>
        </member>
        <member name="P:System.Diagnostics.TraceEvent.Type">
            <summary>
            Gets the type of tracing event.
            </summary>
        </member>
        <member name="M:System.Diagnostics.Events.DataTraceEvent.#ctor(System.Diagnostics.TraceEventType,System.Int32,System.Object)">
            <summary>
            Initializes a new instance of the <see cref="T:System.Diagnostics.Events.DataTraceEvent"/> class.
            </summary>
        </member>
        <member name="P:System.Diagnostics.Events.DataTraceEvent.Data">
            <summary>
            Gets the data associated with the tracing event.
            </summary>
        </member>
        <member name="T:System.Diagnostics.Events.ExceptionTraceEvent">
            <summary>
            A tracing event that exposes an <see cref="P:System.Diagnostics.Events.ExceptionTraceEvent.Exception"/>, in addition to a message string.
            </summary>
        </member>
        <member name="T:System.Diagnostics.Events.MessageTraceEvent">
            <summary>
            Represents a trace event that contains a message.
            </summary>
        </member>
        <member name="M:System.Diagnostics.Events.MessageTraceEvent.#ctor(System.Diagnostics.TraceEventType,System.Int32,System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:System.Diagnostics.Events.MessageTraceEvent"/> class.
            </summary>
        </member>
        <member name="M:System.Diagnostics.Events.MessageTraceEvent.#ctor(System.Diagnostics.TraceEventType,System.Int32,System.String,System.Object[])">
            <summary>
            Initializes a new instance of the <see cref="T:System.Diagnostics.Events.MessageTraceEvent"/> class.
            </summary>
        </member>
        <member name="M:System.Diagnostics.Events.MessageTraceEvent.#ctor(System.Diagnostics.TraceEventType,System.Int32,System.Lazy{System.String})">
            <summary>
            Used by derived classes to provide a lazy-calculated value for the <see cref="P:System.Diagnostics.Events.MessageTraceEvent.MessageOrFormat"/> property.
            </summary>
        </member>
        <member name="M:System.Diagnostics.Events.MessageTraceEvent.ToString">
            <summary>
            Returns a <see cref="T:System.String"/> that represents this instance.
            </summary>
        </member>
        <member name="P:System.Diagnostics.Events.MessageTraceEvent.MessageOrFormat">
            <summary>
            Gets the message or format string to use in combination with <see cref="P:System.Diagnostics.Events.MessageTraceEvent.MessageFormatArgs"/>.
            </summary>
        </member>
        <member name="P:System.Diagnostics.Events.MessageTraceEvent.MessageFormatArgs">
            <summary>
            Gets the message format string args to perform token replacement.
            </summary>
            <value>The message format args.</value>
        </member>
        <member name="M:System.Diagnostics.Events.ExceptionTraceEvent.#ctor(System.Diagnostics.TraceEventType,System.Int32,System.Exception)">
            <summary>
            Initializes a new instance of the <see cref="T:System.Diagnostics.Events.ExceptionTraceEvent"/> class.
            </summary>
        </member>
        <member name="M:System.Diagnostics.Events.ExceptionTraceEvent.#ctor(System.Diagnostics.TraceEventType,System.Int32,System.Exception,System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:System.Diagnostics.Events.ExceptionTraceEvent"/> class.
            </summary>
        </member>
        <member name="M:System.Diagnostics.Events.ExceptionTraceEvent.#ctor(System.Diagnostics.TraceEventType,System.Int32,System.Exception,System.String,System.Object[])">
            <summary>
            Initializes a new instance of the <see cref="T:System.Diagnostics.Events.ExceptionTraceEvent"/> class.
            </summary>
        </member>
        <member name="P:System.Diagnostics.Events.ExceptionTraceEvent.Exception">
            <summary>
            Gets the exception associated with this trace event.
            </summary>
        </member>
        <member name="T:System.Diagnostics.Events.TransferTraceEvent">
            <summary>
            Event traced whenever a new activity is started.
            </summary>
        </member>
        <member name="M:System.Diagnostics.Events.TransferTraceEvent.#ctor(System.Guid,System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:System.Diagnostics.Events.TransferTraceEvent"/> class.
            </summary>
        </member>
        <member name="M:System.Diagnostics.Events.TransferTraceEvent.#ctor(System.Guid,System.String,System.Object[])">
            <summary>
            Initializes a new instance of the <see cref="T:System.Diagnostics.Events.TransferTraceEvent"/> class.
            </summary>
        </member>
        <member name="P:System.Diagnostics.Events.TransferTraceEvent.RelatedActivityId">
            <summary>
            Gets the activity that the event is transfering to.
            </summary>
        </member>
        <member name="T:System.Diagnostics.Extensibility.AggregateTraceSource">
            <summary>
            Logs to multiple tracer sources simulateously. Used for the 
            source "inheritance"
            </summary>
        </member>
        <member name="T:System.Diagnostics.ITraceSource">
            <summary>
            A source that can be used to trace events.
            </summary>
        </member>
        <member name="M:System.Diagnostics.ITraceSource.Flush">
            <summary>
            Flushes the underlying listeners.
            </summary>
        </member>
        <member name="M:System.Diagnostics.ITraceSource.Trace(System.Diagnostics.TraceEvent)">
            <summary>
            Logs the specified trace event.
            </summary>
        </member>
        <member name="T:System.Diagnostics.Extensibility.DiagnosticsTracer">
            <summary>
            Implements the <see cref="T:System.Diagnostics.Extensibility.ITracer"/> interface on top of 
            <see cref="T:System.Diagnostics.TraceSource"/>.
            </summary>
        </member>
        <member name="T:System.Diagnostics.Extensibility.ITracer">
            <summary>
            Interface used to replace the <see cref="T:System.Diagnostics.Tracer"/> implementation.
            </summary>
        </member>
        <member name="M:System.Diagnostics.Extensibility.ITracer.GetSourceEntryFor(System.String)">
            <summary>
            Gets the singleton trace source entry for the given name.
            </summary>
        </member>
        <member name="M:System.Diagnostics.Extensibility.ITracer.AddListener(System.String,System.Diagnostics.TraceListener)">
            <summary>
            Adds a trace listener to the given source.
            </summary>
        </member>
        <member name="M:System.Diagnostics.Extensibility.ITracer.RemoveListener(System.String,System.Diagnostics.TraceListener)">
            <summary>
            Removes a trace listener from the given source.
            </summary>
        </member>
        <member name="M:System.Diagnostics.Extensibility.DiagnosticsTracer.GetOrAdd(System.String,System.Func{System.String,System.Diagnostics.TraceSource})">
            <summary>
            Gets an AppDomain-cached trace source of the given name, or creates it.
            </summary>
        </member>
        <member name="T:System.Diagnostics.Extensibility.DiagnosticsTracer.DiagnosticsTraceSourceEntry">
            <summary>
            Provides access to the trace source as well as its 
            underlying switch and listeners.
            </summary>
        </member>
        <member name="T:System.Diagnostics.Extensibility.ITraceSourceEntry">
            <summary>
            Provides access to the trace source as well as its 
            underlying switch and listeners.
            </summary>
        </member>
        <member name="P:System.Diagnostics.Extensibility.ITraceSourceEntry.Configuration">
            <summary>
            Gets the configuration for the trace source.
            </summary>
        </member>
        <member name="P:System.Diagnostics.Extensibility.ITraceSourceEntry.TraceSource">
            <summary>
            Gets the trace source instance.
            </summary>
        </member>
        <member name="T:System.Diagnostics.Extensibility.ITraceSourceConfiguration">
            <summary>
            Exposes a trace source configuration.
            </summary>
        </member>
        <member name="P:System.Diagnostics.Extensibility.ITraceSourceConfiguration.Name">
            <summary>
            Gets the name of the trace source.
            </summary>
        </member>
        <member name="P:System.Diagnostics.Extensibility.ITraceSourceConfiguration.Switch">
            <summary>
            Gets or sets the switch that controls whether the source should log.
            </summary>
        </member>
        <member name="P:System.Diagnostics.Extensibility.ITraceSourceConfiguration.Listeners">
            <summary>
            Gets the listeners associated with the source. Can be used to add/remove 
            listeners dynamically from it.
            </summary>
        </member>
        <member name="M:System.Diagnostics.Extensibility.IDiagnosticsTraceSource.Trace(System.String,System.Diagnostics.TraceEvent)">
            <summary>
            Logs the specified trace event.
            </summary>
            <param name="originalSourceName">Name of the original source that issued the trace in an aggregate trace source.</param>
            <param name="traceEvent">The event to trace.</param>
        </member>
        <member name="T:System.Diagnostics.Extensibility.SourceName">
            <summary>
            Provides methods and constants for dealing with trace source names.
            </summary>
        </member>
        <member name="F:System.Diagnostics.Extensibility.SourceName.Default">
            <summary>
            The global default trace source name that is used by all sources requested through 
            the <see cref="F:System.Diagnostics.Extensibility.SourceName.Tracer"/>, which equals <c>*</c> (an asterisk).
            </summary>
        </member>
        <member name="F:System.Diagnostics.Extensibility.SourceName.Tracer">
            <summary>
            The trace source that is used to trace unexpected errors that happen during the 
            tracing operations, which never affect the running application. Tracing failures 
            should NEVER cause an application to fail.
            </summary>
            <remarks>
            Add listeners to this trace source name in order to receive logs for tracing 
            infrastructure errors, such as listener failing to log, etc.
            </remarks>
        </member>
        <member name="M:System.Diagnostics.Extensibility.SourceName.For``1">
            <summary>
            Gets the single trace source name that corresponds to the given type <typeparamref name="T"/>.
            </summary>
        </member>
        <member name="M:System.Diagnostics.Extensibility.SourceName.For(System.Type)">
            <summary>
            Gets the single trace source name that corresponds to the given type <paramref name="type"/>
            </summary>
        </member>
        <member name="M:System.Diagnostics.Extensibility.SourceName.CompositeFor``1">
            <summary>
            Gets the list of trace source names that are used to inherit trace source logging for the given type <typeparamref name="T"/>.
            </summary>
        </member>
        <member name="M:System.Diagnostics.Extensibility.SourceName.CompositeFor(System.Type)">
            <summary>
            Gets the list of trace source names that are used to inherit trace source logging for the given type <paramref name="type"/>.
            </summary>
        </member>
        <member name="T:System.Diagnostics.TracerExtensibility">
            <summary>
            Provides low-level manipulation of the current <see cref="T:System.Diagnostics.Extensibility.ITracer"/> implementation.
            </summary>
        </member>
        <member name="M:System.Diagnostics.TracerExtensibility.SetTracer(System.Diagnostics.Extensibility.ITracer)">
            <summary>
            Sets the <see cref="T:System.Diagnostics.Tracer"/> internal <see cref="T:System.Diagnostics.Extensibility.ITracer"/> implementation.
            </summary>
            <param name="tracer">The tracer to replace the default diagnostics tracer with.</param>
            <returns>An object that restores the original tracer when it's disposed (optional).</returns>
        </member>
        <member name="M:System.Diagnostics.TracerExtensibility.SetTracingLevel(System.String,System.Diagnostics.SourceLevels)">
            <summary>
            Sets the tracing level for the source with the given <paramref name="sourceName"/>
            </summary>
        </member>
        <member name="M:System.Diagnostics.TracerExtensibility.AddListener(System.String,System.Diagnostics.TraceListener)">
            <summary>
            Adds a listener to the source with the given <paramref name="sourceName"/>.
            </summary>
        </member>
        <member name="M:System.Diagnostics.TracerExtensibility.RemoveListener(System.String,System.String)">
            <summary>
            Removes a listener from the source with the given <paramref name="sourceName"/>.
            </summary>
        </member>
        <member name="M:System.Diagnostics.TracerExtensibility.RemoveListener(System.Diagnostics.Extensibility.ITracer,System.String,System.String)">
            <summary>
            Removes the listener with the given name from the specified source.
            </summary>
        </member>
        <member name="T:System.Diagnostics.Tracer">
            <summary>
            Provides access to trace source instances for types.
            </summary>
            <nuget id="netfx-System.Diagnostics.Tracer" />
        </member>
        <member name="M:System.Diagnostics.Tracer.#cctor">
            <summary>
            Initializes the <see cref="T:System.Diagnostics.Tracer"/> class by specifying the 
            diagnostics tracer as the default implementation.
            </summary>
        </member>
        <member name="M:System.Diagnostics.Tracer.GetSourceFor``1">
            <summary>
            Gets the trace source for the given type <typeparamref name="T"/>.
            </summary>
        </member>
        <member name="M:System.Diagnostics.Tracer.GetSourceFor(System.Type)">
            <summary>
            Gets the source for the given type <paramref name="type"/>.
            </summary>
        </member>
        <member name="P:System.Diagnostics.Tracer.Instance">
            <summary>
            Use the static methods in <see cref="T:System.Diagnostics.TracerExtensibility"/> instead 
            of accessing this property directly.
            </summary>
        </member>
        <member name="T:System.Diagnostics.TracerSourceExtensions">
            <summary>
            Provides usability overloads for tracing to a <see cref="T:System.Diagnostics.ITraceSource"/>.
            </summary>
        </member>
        <member name="M:System.Diagnostics.TracerSourceExtensions.StartActivity(System.Diagnostics.ITraceSource,System.String,System.Object[])">
            <summary>
            Starts a new activity scope.
            </summary>
        </member>
        <member name="M:System.Diagnostics.TracerSourceExtensions.StartActivity(System.Diagnostics.ITraceSource,System.String)">
            <summary>
            Starts a new activity scope.
            </summary>
        </member>
        <member name="M:System.Diagnostics.TracerSourceExtensions.TraceData(System.Diagnostics.ITraceSource,System.Diagnostics.TraceEventType,System.Object)">
            <summary>
            Traces data with the given associated <see cref="T:System.Diagnostics.TraceEventType"/>.
            </summary>
        </member>
        <member name="M:System.Diagnostics.TracerSourceExtensions.TraceError(System.Diagnostics.ITraceSource,System.String,System.Object[])">
            <summary>
            Traces an event of type <see cref="F:System.Diagnostics.TraceEventType.Error"/> with the given format string and arguments.
            </summary>
        </member>
        <member name="M:System.Diagnostics.TracerSourceExtensions.TraceError(System.Diagnostics.ITraceSource,System.String)">
            <summary>
            Traces an event of type <see cref="F:System.Diagnostics.TraceEventType.Error"/> with the given message;
            </summary>
        </member>
        <member name="M:System.Diagnostics.TracerSourceExtensions.TraceError(System.Diagnostics.ITraceSource,System.Exception,System.String,System.Object[])">
            <summary>
            Traces an event of type <see cref="F:System.Diagnostics.TraceEventType.Error"/> with the given exception, format string and arguments.
            </summary>
        </member>
        <member name="M:System.Diagnostics.TracerSourceExtensions.TraceError(System.Diagnostics.ITraceSource,System.Exception,System.String)">
            <summary>
            Traces an event of type <see cref="F:System.Diagnostics.TraceEventType.Error"/> with the given exception and message.
            </summary>
        </member>
        <member name="M:System.Diagnostics.TracerSourceExtensions.TraceError(System.Diagnostics.ITraceSource,System.Exception)">
            <summary>
            Traces an event of type <see cref="F:System.Diagnostics.TraceEventType.Error"/> with the given exception, using the 
            <see cref="P:System.Exception.Message"/> as the trace event message.
            </summary>
        </member>
        <member name="M:System.Diagnostics.TracerSourceExtensions.TraceInformation(System.Diagnostics.ITraceSource,System.String)">
            <summary>
            Traces an event of type <see cref="F:System.Diagnostics.TraceEventType.Information"/> with the given message;
            </summary>
        </member>
        <member name="M:System.Diagnostics.TracerSourceExtensions.TraceInformation(System.Diagnostics.ITraceSource,System.String,System.Object[])">
            <summary>
            Traces an event of type <see cref="F:System.Diagnostics.TraceEventType.Information"/> with the given format string and arguments.
            </summary>
        </member>
        <member name="M:System.Diagnostics.TracerSourceExtensions.TraceWarning(System.Diagnostics.ITraceSource,System.String)">
            <summary>
            Traces an event of type <see cref="F:System.Diagnostics.TraceEventType.Warning"/> with the given message;
            </summary>
        </member>
        <member name="M:System.Diagnostics.TracerSourceExtensions.TraceWarning(System.Diagnostics.ITraceSource,System.String,System.Object[])">
            <summary>
            Traces an event of type <see cref="F:System.Diagnostics.TraceEventType.Warning"/> with the given format string and arguments.
            </summary>
        </member>
        <member name="M:System.Diagnostics.TracerSourceExtensions.TraceVerbose(System.Diagnostics.ITraceSource,System.String)">
            <summary>
            Traces an event of type <see cref="F:System.Diagnostics.TraceEventType.Verbose"/> with the given message.
            </summary>
        </member>
        <member name="M:System.Diagnostics.TracerSourceExtensions.TraceVerbose(System.Diagnostics.ITraceSource,System.String,System.Object[])">
            <summary>
            Traces an event of type <see cref="F:System.Diagnostics.TraceEventType.Verbose"/> with the given format string and arguments.
            </summary>
        </member>
        <member name="T:System.Diagnostics.TracerSourceExtensions.TraceActivity">
            <devdoc>
            In order for activity tracing to happen, the trace source needs to 
            have <see cref="F:System.Diagnostics.SourceLevels.ActivityTracing"/> enabled.
            </devdoc>
        </member>
        <member name="T:System.Dynamic.DynamicReflection">
            <summary>
            Provides reflection-based dynamic syntax for objects and types. 
            This class provides the extension methods <see cref="M:System.Dynamic.DynamicReflection.AsDynamicReflection(System.Object)"/> 
            and <see cref="M:System.Dynamic.DynamicReflection.AsDynamicReflection(System.Type)"/> as entry points.
            </summary>
            <nuget id="netfx-System.Dynamic.Reflection"/>
        </member>
        <member name="M:System.Dynamic.DynamicReflection.AsDynamicReflection(System.Object)">
            <summary>
            Provides dynamic syntax for accessing the given object members.
            </summary>
            <nuget id="netfx-System.Dynamic.Reflection" />
            <param name="obj" this="true">The object to access dinamically</param>
        </member>
        <member name="M:System.Dynamic.DynamicReflection.AsDynamicReflection(System.Type)">
            <summary>
            Provides dynamic syntax for accessing the given type members.
            </summary>
            <nuget id="netfx-System.Dynamic.Reflection" />
            <param name="type" this="true">The type to access dinamically</param>
        </member>
        <member name="M:System.Dynamic.DynamicReflection.AsGenericTypeParameter(System.Type)">
            <summary>
            Converts the type to a <see cref="T:System.Dynamic.TypeParameter"/> that 
            the reflection dynamic must use to make a generic 
            method invocation.
            </summary>
            <nuget id="netfx-System.Dynamic.Reflection"/>
            <param name="type" this="true">The type to convert</param>
        </member>
        <member name="M:System.Dynamic.DynamicReflection.DynamicReflectionObject.FindBestMatchImpl(System.Dynamic.DynamicMetaObjectBinder,System.Object[],System.Int32,System.Collections.Generic.IEnumerable{System.Dynamic.DynamicReflection.DynamicReflectionObject.IInvocable},System.Boolean)">
            <summary>
            Finds the best match among the candidates.
            </summary>
            <param name="binder">The binder that is requesting the match.</param>
            <param name="args">The args passed in to the invocation.</param>
            <param name="genericArgs">The generic args if any.</param>
            <param name="candidates">The candidate methods to use for the match..</param>
            <param name="assignableFrom">if set to <c>true</c>, uses a more lax matching approach for arguments, with IsAssignableFrom instead of == for arg type.</param>
        </member>
        <member name="T:System.Dynamic.OutValue">
            <summary>
            Allows output parameters to be passed to reflection dynamic.
            This support does not exist in C# 4.0 dynamic out of the box.
            </summary>
        </member>
        <member name="M:System.Dynamic.OutValue.Create``1(System.Action{``0})">
            <summary>
            Creates a value setter delegating reference
            to be used as an output parameter when invoking the 
            dynamic object.
            </summary>
            <param name="setter">The value to pass as out to the dynamic invocation.</param>
        </member>
        <member name="P:System.Dynamic.OutValue.Value">
            <summary>
            Sets the value.
            </summary>
        </member>
        <member name="T:System.Dynamic.OutValue`1">
            <summary>
            Allows output parameters to be passed to reflection dynamic.
            This support does not exist in C# 4.0 dynamic out of the box.
            </summary>
        </member>
        <member name="M:System.Dynamic.OutValue`1.#ctor(System.Action{`0})">
            <summary>
            Initializes a new instance of the <see cref="T:System.Dynamic.OutValue`1"/> class.
            </summary>
        </member>
        <member name="P:System.Dynamic.OutValue`1.Value">
            <summary>
            Gets or sets the value.
            </summary>
        </member>
        <member name="T:System.Dynamic.RefValue">
            <summary>
            Allows by-ref values to be passed to reflection dynamic.
            This support does not exist in C# 4.0 dynamic out of the box.
            </summary>
        </member>
        <member name="M:System.Dynamic.RefValue.Create``1(System.Func{``0},System.Action{``0})">
            <summary>
            Creates a value getter/setter delegating reference
            to be used by reference when invoking the 
            dynamic object.
            </summary>
            <param name="getter">The getter of the by-ref value to the dynamic invocation.</param>
            <param name="setter">The setter of the by-ref value to the dynamic invocation.</param>
        </member>
        <member name="P:System.Dynamic.RefValue.Value">
            <summary>
            Gets or sets the value.
            </summary>
        </member>
        <member name="T:System.Dynamic.RefValue`1">
            <summary>
            Allows by-ref values to be passed to reflection dynamic.
            This support does not exist in C# 4.0 dynamic out of the box.
            </summary>
        </member>
        <member name="M:System.Dynamic.RefValue`1.#ctor(System.Func{`0},System.Action{`0})">
            <summary>
            Initializes a new instance of the <see cref="T:System.Dynamic.RefValue`1"/> class.
            </summary>
        </member>
        <member name="P:System.Dynamic.RefValue`1.Value">
            <summary>
            Gets or sets the value.
            </summary>
        </member>
        <member name="T:System.Dynamic.TypeParameter">
            <summary>
            Represents a runtime type parameter to use to 
            make a generic method invocation.
            </summary>
        </member>
        <member name="M:System.Dynamic.TypeParameter.#ctor(System.Type)">
            <summary>
            Initializes a new instance of the <see cref="T:System.Dynamic.TypeParameter"/> class.
            </summary>
        </member>
        <member name="P:System.Dynamic.TypeParameter.Type">
            <summary>
            Gets the type.
            </summary>
        </member>
        <member name="T:Guard">
            <summary>
            Common guard class for argument validation.
            </summary>
        </member>
        <member name="M:Guard.NotNull``1(System.Linq.Expressions.Expression{System.Func{``0}},``0)">
            <summary>
            Ensures the given <paramref name="value"/> is not null.
            Throws <see cref="T:System.ArgumentNullException"/> otherwise.
            </summary>
        </member>
        <member name="M:Guard.NotNullOrEmpty(System.Linq.Expressions.Expression{System.Func{System.String}},System.String)">
            <summary>
            Ensures the given string <paramref name="value"/> is not null or empty.
            Throws <see cref="T:System.ArgumentNullException"/> in the first case, or 
            <see cref="T:System.ArgumentException"/> in the latter.
            </summary>
        </member>
    </members>
</doc>
